<?php
/**
 * セッションクラスファイル
 * 
 */

/**
 * セッションクラス
 *
 */
class Session  {
	/**
	 * コンストラクタ
	 *
	 * session_start()を呼ぶ
	 */
	function __construct() {
		session_start();
	}
	
	/**
	 * セッション変数へ保存する
	 *
	 * @param string $sessionName セッション変数名
	 * @param SimpleXMLElement $sxmlElem 保存対象のバリューオブジェクト
	 */
	public function save($sessionName,$sxmlElem) {
		$_SESSION[$sessionName] = $sxmlElem->asXML();
	}
	
	/**
	 * セッション変数から読み出す
	 *
	 * @param string $sessionName セッション変数名
	 * @return SimpleXMLElement SimpleXMLElement
	 */
	public function load($sessionName) {
		return simplexml_load_string($_SESSION[$sessionName],'VSimpleXMLElement');
	}
	
	/**
	 * セッション変数が存在するか調べる
	 *
	 * @param string $sessionName セッション変数名
	 * @return boolean 保存されていれば真
	 */
	public function exist($sessionName) {
		return isset($_SESSION[$sessionName]);
	}
	
	/**
	 * セッションを閉じる
	 *
	 * 1.セッション変数を解除<br>
	 * 2.セッションクッキー削除<br>
	 * 3.セッション破壊<br>
	 */
	public function terminate() {
		$_SESSION = array();
		if (isset($_COOKIE[session_name()])) {
			setcookie(session_name(), '', time()-42000, '/');
		}
		session_destroy();
	}
}
